me3explorerfandomcom-20200213-history
TankMaster's Natives Editor - State Event Map
State transitions (STs) are events that control the setting of bools and integers in the game. To look up their ID numbers we need to use TankMaster's Natives Editor (NE), a utility not yet part of the ME3Explorer toolset. This article will cover how to use the editor and provide some guidance on how to determine the plot effects of a state transition. The tutorial is based on an example, which involves adding a new dialogue wheel option to Sam's "Relationship 2" dialogue. Here's the vanilla dialogue with FemShep for reference. The related PCC is and the dialogue is referenced in the package. Useful Resources *ME3 Plot Database *ME3 Plot Dump *ME1, ME2, ME3 bools by HJF4 *Gibbed ME3 Conditionals Dump *ME1 and ME2 Plot Project. Researching State Transitions *Download the editor here and run the exe. The NE window will look like this: :ME3's main "State Event Map" is stored in . DLC State Event Maps are stored in their "startup" file. For example, Omega's is stored in . We'll open the main file since we're editing a file in the base game. Click , then navigate to the file's location on your PC. Click on the State Event Map tab to see all the transition IDs referenced by the base game: :Event IDs in range from 1 to 4914. DLC picks up with larger IDs, Citadel DLC ending in 7415. Multiplayer DLC seem to lack State Event Maps. They aren't located in the MP Startup PCC and some MP packs lack this file completely. *Locate 2345 in the list and click on it. :ST 2345 prompts one action: it sets plot bool 20072 to TRUE. Note from the gibbed dump screenshot in the first case study that this is also the conditional checked at the start of the conversation. This means 20072 is the bool for Sam's R2 convo. It's set to true the first time the conversation is triggered. The conditional check for the bool is what prevents the same conversation from triggering again in the future. We definitely don't want to change this for our edit. *Locate 2129 in the list and click on it. We see that it triggers an integer change rather than a bool change. The value of plot integer 10336 will be increased by one from its starting value. If the "increment" box wasn't checked, the game would change the value to one. Now the hard part: figuring out what an integer means. This can be difficult. Most plot bools and integers are unknown, but it's always worth checking the web references listed in the resources before investing a significant amount of time in research. If that doesn't get you anywhere you'll need to dig through a variety of dialogue files and conditionals related to the character, and use your ME3 plot knowledge to figure things out. In Sam's case, conditional 943 (checked in several of her convos) references 10336, which gives us a good clue: ((plot.bools19835 Bool true) || (plot.ints10336 >= 5)) Since cnd 943 also references her romance bool (19835), let's check Sam's cabin lock-in conditional (883) to see if 10336 used there, as well: Note: conditional modified to include Thane (19283) and Kelly (21100) romance bools. (((plot.bools17662 Bool true) && (plot.bools19722 Bool false) && (plot.bools19725 Bool false) && (plot.bools19723 Bool false) && (plot.bools19283 Bool false) && (plot.bools21100 Bool false) && (plot.ints10337 4= 6) && (plot.bools19836 Bool false)) || (plot.bools19835 Bool true)) As you can see, 10336 isn't used there, but further research into Sam's other conversations shows that 10336 increases by +1 every time Shepard prompts a new conversation with her in the CIC. From that we can deduce that 10336 is Sam's friendship integer. By talking to Sam, Shepard builds a friendship with her. Since 10336 isn't involved with Sam's romance, we now know for certain that we don't need to make any changes related to ST 2129. Let's move through the last two state transitions a bit more quickly now that we better understand how to read the editor and figure out plot effects. *State Event 2133 :This is the transition we're most interested in since it's triggered by the AGREE response and Sam's flirt. From the editor we see it conveys a +2 increase to a different integer: 10337. This is the same integer referenced in Sam's lock-in conditional and is known to be tied to her romance. Any Shepard who chooses AGREE during this convo will trigger this transition. In other words, the game considers AGREE to be an indication Shepard is interested in Sam romantically. *State Event 4595 :This sets bool 22506 to TRUE. Running a search for both the bool and transition in the Gibbed dump doesn't turn up any other entries. Neither does a search in the common web resources, ST 4595 seems to simply flag the end of the conversation as complete. Since we don't need to make any changes to the associated line, we can safely leave it be despite not fully understanding what it does. STs can have multiple plot effects. For example, state event 28 sets 8 different bools. State Event 1848 sets a bool and changes an integer. This system means that multiple changes can be triggered as a result of a single decision Shepard makes in game. This is a very important way ME3 controls plot evolution. Adding State Transitions Adding new state transitions and bools to the game is very, very easy. The most important thing to remember is that you MUST use unique ID numbers. Both the transition and bool IDs cannot already be referenced by the vanilla game (this includes DLC). To maintain intermod compatibility, you should also ensure the ID is not used by another mod author. Consult the Compatibility Resource article for a list of plots already used by mods. Once you've chosen your numbers, then use the procedure below to add them. We'll be using 7603 for our state transition and 26503 for our bool. Why add state transitions rather than edit? Sometimes you want to flag certain events in game that BW hasn't. That way you can reference them in conditionals later on, to mod new plot content. Also, State Transitions are a bit like conditionals: the same state transition is referenced by multiple dialogues and sequence maps. If you change it once, then you've changed it everywhere. This increases the chance of you breaking something somewhere else. Even when you really just want to edit a ST, it's generally always better to make a new one and replace it. Here's how: *Select the tab. *Click the bottom left button. A new ID will be created automatically at the bottom of the list. You may change it by altering where it appears in the labeled field to the upper left. *Add the new bool. Under the empty, right-hand pane there's a dropdown menu. Make sure is selected and then click the button underneath. You should now see a new "Bool" item displayed in the previously empty pane. To the right are all the fields we discussed previously. Let's edit them. Select the "0" in the field and type in your new bool number; ours is 26503. Then, set the to TRUE. This is our flirt flag. *We're not done yet. We need to make sure we retain the changes that ST2133 implements. That means we need to add a +2 increment for integer 10337. From the bottom dropdown select and then click . Now, in the field enter 10337. For type in 2 or use the arrows. Check off the field. I'm not sure what is yet, but its value is 0 in 2133 so we want to stick to that. *When finished, it should look like the screenshots below. Be sure to save changes before exiting using . Final Note I haven't used any of the other State Event categories besides bool and int, so my current knowledge of STs is limited to those types. There are several others, including Consequence, Function, Float, Local Bool/Int/Float, and Substate. These categories are all used MUCH less frequently than Bool and Int. You can find a bit more information about them in TankMaster's Plot Natives Research thread and the Download thread. Also soon available in the Plot Natives article. Category:Tutorials